package cn.wolfcode.p2p.business.service;

import cn.wolfcode.p2p.base.domain.Account;
import cn.wolfcode.p2p.business.domain.AccountFlow;

import java.math.BigDecimal;

public interface IAccountFlowService {
    int save(AccountFlow accountFlow);

    /**
     * 记录线下充值流水
     * @param applierAccount
     * @param amount
     */
    void createRechargeOfflineFlow(Account applierAccount, BigDecimal amount);

    /**
     * 记录投标流水
     * @param account
     * @param amount
     */
    void createBidFlow(Account account, BigDecimal amount);

    /**
     * 满标一审失败
     * @param account
     * @param amount
     */
    void createBidFiledFlow(Account account, BigDecimal amount);

    /**
     * 借款成功
     * @param account
     * @param amount
     */
    void createBorrowSuccessFlow(Account account, BigDecimal amount);

    /**
     * 支付平台借款手续费的流水
     * @param account
     * @param amount
     */
    void createPayAccountManagementChargeFlow(Account account, BigDecimal amount);

    /**
     * 投标成功的流水
     * @param account
     * @param amount
     */
    void createBidSuccessFlow(Account account, BigDecimal amount);

    /**
     * 还款成功流水
     * @param account
     * @param amount
     */
    void createReturnMoneyFlow(Account account, BigDecimal amount);

    /**
     * 回款成功流水
     * @param account
     * @param amount
     */
    void createReceiveReturnMoney(Account account, BigDecimal amount);

    /**
     * 支付平台利息管理费
     * @param account
     * @param amount
     */
    void createPayInterestManagerChargeFlow(Account account, BigDecimal amount);

    /**
     * 生成认购成功的流水
     * @param account
     * @param amount
     */
    void createSubscribeFlow(Account account, BigDecimal amount);

    /**
     * 转让成功的流水
     * @param account
     * @param amount
     */
    void createTransSuccessFlow(Account account, BigDecimal amount);
}
